package cn.zwk.domain.system.service;

import cn.zwk.domain.system.model.dto.RoleDto;
import cn.zwk.domain.system.model.query.RolePageQuery;
import cn.zwk.domain.system.model.vo.RolePageVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;

public interface IRoleService {
    Page<RolePageVo> listPaged(RolePageQuery queryParams);

    RoleDto getInfo(Long roleId);

    boolean save(RoleDto roleDto);

    boolean update(RoleDto roleDto);

    /**
     * 查看角色是否已分配用户
     * @param ids
     * @return
     */
    boolean hasAssignedUsers(List<Long> ids);

    /**
     * 删除权限及其关联
     */
    boolean remove(List<Long> ids, Boolean force);

    /**
     * 校验角色是否允许操作
     */
    void checkRoleAllowed(List<Long> ids);

    List<Long> getRoleMenuIds(Long roleId);

    boolean assignMenus(Long roleId, List<Long> menuIds);
}
